﻿using QFramework;
using System;
using System.Collections.Generic;

namespace HKTools
{
    /// <summary>
    /// 初始化任务队列的指令
    /// </summary>
    public class CMD_STS_InitTaskQueue<T> : AbstractCommand where T : Enum
    {
        /// <summary>
        /// 任务队列类型
        /// </summary>
        STS_TaskQueueType taskQueueType;

        /// <summary>
        /// 任务队列
        /// </summary>
        Queue<T> taskQueue;

        /// <summary>
        /// 构造函数，初始化任务队列指令
        /// </summary>
        public CMD_STS_InitTaskQueue(STS_TaskQueueType taskQueueType, Queue<T> taskQueue)
        {
            this.taskQueueType = taskQueueType;
            this.taskQueue = taskQueue;
        }

        /// <summary>
        /// 执行指令，初始化任务队列
        /// </summary>
        protected override void OnExecute()
        {
            if (taskQueue == null || taskQueue.Count == 0)
            {
                HKDebug.LogError("taskQueue为空 或 任务数量为0，无法初始化！");
                return;
            }

            // 调用任务系统，初始化任务队列 
            this.GetSystem<IHK_SimpleTaskSystem>().InitTaskQueue(taskQueueType, taskQueue);
        }
    }
}